package org.hcyspartnoc.luoxin.common.enums.chat;

import lombok.Getter;

@Getter
public enum ChatMessageTypeEnum {
    // 初始化连接时获取信息的消息
    INIT(1, "连接ws获取信息"),
    // 普通聊天消息
    CHAT(2, "普通聊天消息"),
    // 与机器人聊天
    CHAT_V_COUNSELOR(3, "与机器人聊天"),
    // 群组已经创建好的消息
    GROUP_CREATE(4, "群组已经创建好"),
    // 好友申请消息
    CONTACT_APPLY(5, "好友申请"),
    // 添加好友打招呼消息
    ADD_FRIEND(6, "添加好友打招呼消息"),
    // 媒体文件聊天消息
    MEDIA_CHAT(7, "媒体文件"),
    // 文件上传完成消息
    FILE_UPLOAD(8, "文件上传完成"),
    // 强制下线消息
    FORCE_OFF_LINE(9, "强制下线"),
    // 群聊已解散消息
    DISSOLUTION_GROUP(10, "群聊已解散"),
    // 某人加入群聊的消息
    ADD_GROUP(11, "%s加入群聊"),
    // 群昵称更改消息
    GROUP_NAME_UPDATE(12, "%s将群昵称更改为%s"),
    // 某人被管理员移出群聊的消息
    KICK_OUT_GROUP(13, "%s被管理员移出了群聊"),
    // 某人退出群聊的消息
    REMOVE_GROUP(14, "%s退出了群聊"),
    // 停止机器人回答
    STOP_V_COUNSELOR_ANSWER(15, "停止机器人回答"),
    // 心跳
    HEART_BEAT(16, "心跳"),
    // 开启新的订单会话
    ORDER_SESSION_START(17, "已开启新的会话"),
    // 订单结束消息
    ORDER_SESSION_END(18, "订单已结束"),
    // 实时聊天
    AUDIO_CHAT_VC(199, "与机器人语音实时聊天");
    // 枚举的私有成员变量
    private final Integer code;
    private final String message;

    // 枚举的构造函数，默认是private的
    ChatMessageTypeEnum(Integer code, String message) {
        this.code = code;
        this.message = message;
    }

    // 可选：添加一个静态方法，根据code字符串获取对应的枚举实例
    public static ChatMessageTypeEnum fromCode(Integer code) {
        for (ChatMessageTypeEnum type : ChatMessageTypeEnum.values()) {
            if (type.getCode().equals(code)) {
                return type;
            }
        }
        return null;
    }
}